package com.stronger.pettern.factory;

public class MesssageFactory {
    /**
     * 普通工厂模式
     * @param type
     * @return
     */
    public Sender produce(String type){
        if("sms".equals(type)){
            return new SmsSender();
        }else if("mail".equals(type)){
            return new MailSender();
        }else {
            throw new RuntimeException("请输入正确的类型");
        }
    }

    /**
     * 多个工厂模式：是对普通工厂方法模式的改进，在普通工厂模式中，如果传递的字符串出错
     * 则不能正确创建对象，而多个工厂方法模式是提供多个工厂方法，分别创建对象
     * @return
     */
    public Sender smsSend(){
        return new SmsSender();
    }

    public Sender mailSend(){
        return new MailSender();
    }


}
